
#ifndef _POINT_H_
#define _POINT_H_

class Point
{
protected:
	float x, y, z;
public:
	Point ();
		// Default constructor. Sets the point to the orgin

	Point (float _x, float _y, float _z);
		// Set the point

	void SetX (float _x) { x = _x;}
		// Set the X-coordinate

	void SetY (float _y) { y = _y;}
		// Set the Y-coordinate

	void SetZ (float _z) { z = _z;}
		// Set the Z-coordinate

	void SetPoint (float _x, float _y, float _z);
		// Set the point

	float X() { return x;}
		// Get the x-value

	float Y() { return y; }
		// Get the y-value

	float Z() { return z; }
		// get the z-value

	Point operator + (Point& p);
		// Adding two points together

	Point operator - (Point& p);
		// Substracting two points together

	Point operator * (float s);
		// Multiply the point with a scalar

	Point operator / (float s);
		// Divide the point with a scalar

	Point operator = (Point& p);
		// assign the point
};

#endif